package modelo.persistenciaArquivo;


import modelo.dominio.TipoVeiculo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;


public class PersistenciaTipoVeiculo {
	//criação da lista de tipo de veiculos
	public static ArrayList<TipoVeiculo> listTipoVeiculos = new ArrayList<TipoVeiculo>();
	
	//cadastro de tipo de veiculos
	public void cadastrarTipoVeiculo(TipoVeiculo tipoVeiculo) {
		listTipoVeiculos.add(tipoVeiculo);
	}
	
	//lista de tipo de veiculos
	public static ArrayList<TipoVeiculo> getListaTipoveiculo() {
		return listTipoVeiculos;
	}
	
	//buscara por tipoveiculo pelo id
	public TipoVeiculo buscaTipoVeiculoId(TipoVeiculo tipoVeiculo) {
		for(int i = 0; i< listTipoVeiculos.size(); i++){
			if(listTipoVeiculos.get(i).getIdTipoVeiculo() == tipoVeiculo.getIdTipoVeiculo()){
				return listTipoVeiculos.get(i);
			}
		}
		return null;
	}
	
	//carregar lista de tipo de veiculos
	public boolean carregarTipoVeiculo(ArrayList<TipoVeiculo> tipoVeiculos) throws IOException{
		int id = 0;
		String categoria = "";
		double adicional = 0;
		String linha;
		TipoVeiculo tipoVeiculo;
		
		File fp = new File("TipoVeiculos.txt");
		
		if(!fp.exists()) {
			return false;
		}
		
		BufferedReader br = new BufferedReader(new FileReader(fp));
		
		while((linha = br.readLine())!= null) {
			String[] str = linha.split(";");
			
			id = Integer.parseInt(str[0]);
			categoria = str[1];
			adicional = Double.parseDouble(str[2]);
			TipoVeiculo novoTipoVeiculo = new TipoVeiculo(id, categoria, adicional);
			cadastrarTipoVeiculo(novoTipoVeiculo);
			
		}
		br.close();
		return true;
	
	}
	
	
	//salvar tipo de veiculo em arquivo
	public void salvarTipoVeiculo(ArrayList<TipoVeiculo>  tipoVeiculos) throws IOException {
		int id;
		String categoria;
		double adicional;
		
		
		FileWriter fp = new FileWriter(new File("TipoVeiculos.txt"));
		
		for(int i =0; i < listTipoVeiculos.size(); i++) {
			id = listTipoVeiculos.get(i).getIdTipoVeiculo();
			categoria = listTipoVeiculos.get(i).getCategoria();
			adicional = listTipoVeiculos.get(i).getPercentual();
			fp.write(id+";"+categoria+";"+ adicional+"\n");
		}
		fp.close();
		
	}
	
	//salva tipoveiculos em arquivo
	public void acrescentarTipoVeiculo(TipoVeiculo tipoVeiculo) throws IOException {
		
		BufferedWriter writer = new BufferedWriter(new FileWriter("TipoVeiculos.txt", true));
		PrintWriter output = new PrintWriter(writer);
		
		output.println(tipoVeiculo.getIdTipoVeiculo() + ";"
		+ tipoVeiculo.getCategoria() + ";"
		+ tipoVeiculo.getPercentual() + ";");
		writer.close();
		output.close();
	}
	
	
	public int verificaQuantId(ArrayList<TipoVeiculo> tipoVeiculos){
		int id = 1;
		
		for(int i = 1; i< listTipoVeiculos.size(); i ++) {
			id = i;
		}
		id++;
		
		return id;
	}
}
